งานทะเบียนมีข้อมูลโปรไฟล์นักศึกษา รายละเอียดรายวิชา และการลงทะเบียน เก็บไว้ในตารางแยกกัน จงสร้างรายงานที่จับคู่ ชื่อนักศึกษาให้ตรงกับรายวิชาที่ถูกต้องให้ถูกต้อง
สามคำขอของคุณ
- ค้นหารายวิชาที่ Emma Li กำลังเรียนอยู่
- แสดงรายการลงทะเบียนที่ยังใช้งานอยู่ พร้อมชื่อนักศึกษาและชื่อรายวิชา
- ส่งรายชื่อนักศึกษา DSAI ที่กำลังเรียน PY101 อยู่
เตรียม PostgreSQL
- ใน pgAdmin ให้เปิดไฟล์
lab6_7_setup.sqlที่ให้มาจากโฟลเดอร์ TADSAI2202/lab6_7/และรันไฟล์ทั้งหมดหนึ่งครั้ง - ตรวจสอบจำนวนสุดท้าย: นักศึกษา 22 คน, รายวิชา 8 วิชา, การลงทะเบียน 37 รายการให้ถูกต้อง
- รันคำสั่งตั้งค่าการเชื่อมต่อทางด้านขวา และรันซ้ำทุกครั้งที่เปิดการเชื่อมต่อฐานข้อมูลใหม่
- ตรวจดูตารางทั้งสามก่อนที่จะเชื่อมตารางเข้าด้วยกัน
Lab 7 ใช้ชุดข้อมูลเดียวกัน รวมถึง assignments, submissionsและ lms_rosterสำหรับวันนี้ให้ใช้ตารางทั้งสามที่แสดงอยู่ที่นี่ ข้อมูลบุคคลและระเบียนทั้งหมดเป็นข้อมูลสมมติ
SET search_path TO lab6_7;SET search_path TO lab6_7;
SELECT student_id, student_name, programme
FROM students
ORDER BY student_id;SET search_path TO lab6_7;
SELECT course_code, course_title, credits
FROM courses
ORDER BY course_code;SET search_path TO lab6_7;
SELECT enrolment_id, student_id, course_code,
enrolment_status, score
FROM enrolments
ORDER BY enrolment_id;ตัวอย่างข้อมูลย่อของทั้งสามตาราง
students: 22 แถว student_id เป็น primary key
| student_id | student_name | programme |
|---|---|---|
| S101 | Alice Wong | DSAI |
| S102 | Ben Lau | CS |
| S105 | Emma Li | CS |
courses: 8 แถว course_code เป็น primary key
| course_code | course_title | credits |
|---|---|---|
| SQL101 | SQL Fundamentals | 3 |
| PY101 | Python Programming | 3 |
| WEB101 | Web Databases | 3 |
enrolments: 37 แถว แบ่งเป็น 30 รายการที่ยังใช้งานอยู่ และ 7 รายการที่ถอนแล้ว enrolment_id เป็น primary key
| enrolment_id | student_id | course_code | enrolment_status |
|---|---|---|---|
| E01 | S101 | SQL101 | active |
| E04 | S104 | SQL101 | withdrawn |
| E06 | S105 | PY101 | active |
enrolments.student_id → students.student_idforeign key ชี้ไปยังนักศึกษาหนึ่งคน
enrolments.course_code → courses.course_codeforeign key ชี้ไปยังรายวิชาหนึ่งวิชา
S101 + SQL101Alice Wong + SQL Fundamentals
รหัสที่ซ้ำกันเป็นตัวเชื่อมระเบียนเข้าด้วยกัน ส่วนชื่อและชื่อรายวิชายังคงอยู่ในตารางของตัวเอง นักศึกษาหนึ่งคนอาจปรากฏในการลงทะเบียนหลายรายการ